/**
 * @file camera_capture_mode.h
 * @brief 实现专门用于获取摄像头图像的模式
 * @version 1.0
 * @date 2025-04-25
 */

#ifndef CAMERA_CAPTURE_MODE_H
#define CAMERA_CAPTURE_MODE_H

#include <stdbool.h>
#include <stdint.h>
#include "common_defs.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 摄像头捕获配置
 */
typedef struct {
    char ip[20];              // 摄像头IP地址
    char username[32];        // 用户名
    char password[32];        // 密码
    char save_dir[128];       // 保存目录
    char prefix[32];          // 文件名前缀
    int capture_interval_ms;  // 捕获间隔(毫秒)
    int max_captures;         // 最大捕获次数，-1表示无限
} CameraCaptureConfig;

/**
 * @brief 初始化摄像头捕获模式
 * 
 * @return int 成功返回0，失败返回非0
 */
int init_camera_capture_mode(void);

/**
 * @brief 启动摄像头捕获模式
 * 同步设置摄像头时间，连续获取3个摄像头的图像，保存在picture_docu目录
 * 
 * @param capture_count 捕获图像的次数
 * @return int 成功返回0，失败返回非0
 */
int run_camera_capture_mode(int capture_count);

/**
 * @brief 清理摄像头捕获模式资源
 */
void cleanup_camera_capture_mode(void);

#ifdef __cplusplus
}
#endif

#endif /* CAMERA_CAPTURE_MODE_H */ 